/**
 * @ Author:Yoann Meclot. MSay2
 * @ Created on:2020-09-03 13:21:55
 * @ Modified on: 2021-06-14 18:51:23
 *
 * @version 1.2
 */
/**
 * Copyright (c) 2020-2021 MSay2 (Yoann Meclot) - @msay2/tspoet
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
import { ObjectName } from "./ObjectName.js";
/**
 * TSAnnotation allows you to write a annotation imported or not.
 *
 * Use static field to write empty value.
 *
 * @class `TSAnnotation`
 * @version 1.2
 */
export declare class TSAnnotation
{
    /**
     * Static field to write empty value.
     *
     * @type {string}
     * @since 1.0
     */
    public static EMPTY_VALUE:string;
    
    /**
     * Build annotation.
     *
     * @param objectName The object name to be imported.
     * @throws {TSPoetException} Check if the name is undefined or null.
     * @type {TSAnnotation.Builder}
     * @since 1.0
     */
    public static annotationBuilder(objectName:ObjectName):TSAnnotation.Builder;
    
    public static Builder:{
        new (name:ObjectName):{
            /**
             * Add value to the annotation.
             *
             * @param value The value of annotation.
             * @throws {TSPoetException} Check if the value is undefined or null.
             * @type {TSAnnotation.Builder}
             * @since 1.0
             */
            addValue(value:any):TSAnnotation.Builder;

            /**
             * Build annotation.
             *
             * @type {TSAnnotation}
             * @since 1.0
             */
            build():TSAnnotation;
        };
    };
    
    private constructor(builder:TSAnnotation.Builder);
}
export declare namespace TSAnnotation
{
    type Builder = InstanceType<typeof TSAnnotation.Builder>;
}
//# sourceMappingURL=TSAnnotation.d.ts.map